The present invention relates generally to computer systems, and deals more particularly with coordinating time-outs for distributed servers.
A wide variety of computer services are available today via the Internet. In some cases, a single user request requires services (such as information) from more than one server. Some Web services allow different servers on the Internet to cooperate with each other to collectively provide the service required by a client of one server. One computer application can call application functions (or services) from one or more other computers. FIG. 11 illustrates a prior art environment where a user/client makes a request to a Web server labeled WSA. To respond to the request, Web server WSA needs services (such as information) from other Web servers labeled WSB and WSC. So, Web server WSA establishes HTTP sessions with Web servers WSB and WSC, i.e. WSA-WSB and WSA-WSC. For example, web server WSA provides a managing Web service and point of control point for travel reservation, web server WSB provides a Web service for an airplane reservation, and web server WSC provides a Web service for a rent-a-car reservation. In this example, the end user initiates an HTTP session with WSA and issues to WSA a request for travel reservations, including an airplane reservation and a rent-a-car reservation. In response, WSA establishes HTTP sessions with WSB and WSC. Then, WSA makes a request for the airplane reservation to WSB, and makes a request for the rent-a-car reservation to WSC.
It was known for a Web server to set up a session timeout to terminate a session and related processing after lapse of a fixed time from the start of the service. See Japan Published Unexamined Patent Application No. 11-161507, pages 5 and 6. In this PUPA, a Web server at a control point calls other Web servers to provide respective web services. The HTTP sessions between the control point server and the called servers exist independently, although they are associated with each other by the control point server. The length of the timeout for each HTTP session depends on the server providing the Web service. While one Web service is operating within its HTTP session, the HTTP session of another, related Web service may timeout. This is illustrated by the following example. The control point server WSA requests an airplane reservation from called server WSB, and a rent-a-car reservation from called server WSC. Generally, neither reservation is finalized until the control point server WSA presents both to the customer for approval. So, WSA makes a temporary airplane reservation with WSB pursuant to an airplane reservation proposed by WSB, and stores the airplane reservation information in association with the HTTP session with WSB. In some cases, the HTTP session for WSB times-out before WSC completes its processing and returns a temporary rent-a-car reservation to WSA in association with the session for WSC. In such a case, processing at WSB ends before WSC makes the temporary rent-a-car reservation, and the temporary airplane reservation made at WSB is invalid. In such a case, WSA needs to prompt the customer to input the airplane reservation parameters again and await processing by WSB, and this frustrates the customer.
Accordingly, an object of the present invention is to coordinate distributed servers involved in related work, so the servers will not time-out needlessly.